package com.itheima.d0_generic;

import java.util.ArrayList;

//目标：了解泛型方法的定义方式
public class Demo4 {
    public static void main(String[] args) {
        //需求：定义一个泛型方法，可以接收任意类型的引用数据类型数组，将其变成ArrayList集合返回！
        String[] arr1 = {"a", "b", "c"};
        ArrayList<String> list1 = arrToList(arr1);
        System.out.println(list1);

        Integer[] arr2 = {1, 2, 3, 4, 5};
        ArrayList<Integer> list2 = arrToList(arr2);
        System.out.println(list2);
    }

    /**
     * 1.定义方法：泛型方法，提高整个方法中类型的灵活性
     * 明确参数：需要接收数组，数组数据类型不确定，需要灵活变化！
     * 明确返回值：返回ArrayList集合，集合中数据类型和数组中类型应该保持一致
     */
    public static <T> ArrayList<T> arrToList(T[] arr) {
        //2.创建集合
        ArrayList<T> list = new ArrayList<>();

        //3.遍历数组
        for (int i = 0; i < arr.length; i++) {
            list.add(arr[i]);
        }

        //4.返回集合
        return list;
    }
}
